草庐IT

c++ - bisonc++ 多态继承

全部标签

php 多态性 - 在多态子函数中调用父函数

这是父类:classEvent{publicfunctiongetLang($lang){$sql="select*fromEventwhereEventID=".$this->EventID."ANDLang=".$lang;$result=$this->selectOneRow($sql);}}这是child:classInvitationextendsEvent{publicfunctiongetLang($lang){Event::getLang($lang);$sql="select*frominvitationwhereEventID=".$this->EventID."a

php - 扩展其他类的类是否继承相同的构造函数?

例如...如果我有一个模块类:classModule{var$page;functionModule($page){$this->page=$page;}}然后是特定的新闻模块类:classNewsextendsModule{functionaFunction(){return$this->page->id;}}我可以像这样实例化新闻吗:$page=newPage();$news=newNews($page);或者我必须这样做:$page=newPage();$news=newNews();$news->page=$page;谢谢。PS:我对OOPphp很陌生,所以请多多包涵,哈哈。我

php - 在 php 中使用 Decorator 的完整继承行为

我一般不太习惯设计pattern,也没用过Decorator。我想要一个可以根据上下文具有不同行为的对象。这些行为在不同的类中定义。我想装饰器可以解决问题。但我需要每个装饰器都可以访问相同的属性,并首先调用子方法,就像继承一样。所以这是我所做的:abstractclassComponent{/***UsedtoaccesslastchainDecorator**@varDecorator*/protected$this;protected$prop1;//Theseproperieshavetobeaccessedinanydecoratorsprotected$prop2;prote

php - 为什么 Eloquent\Builder 在 laravel 中不继承 Query\Builder?

在laravel中,Eloquent\Builder类将对它不需要的方法的每次调用发送到内部Query\Builder.对我来说,这听起来像是继承。有人知道为什么他们没有实现它以便Eloquent\Builder扩展Query\Builder吗?我第一次注意到它的原因是我在IDE中遇到了“调用未定义的方法”错误,尽管代码工作正常,我想这是魔术方法的诅咒。作为引用,这里是来自Eloquent\Builder的相关资源。/***Thebasequerybuilderinstance.**@var\Illuminate\Database\Query\Builder*/protected$qu

php - 魔术功能和继承

我想知道是否可以创建一个扩展另一个魔法对象的魔法对象(使用PHP)。 最佳答案 我不太确定你在问什么……你想显式调用父类的魔术方法吗?如果是这样,您可以使用该类的parent引用:classObjectextendsdbObj{//...//thisiswhati'massumingyou'relookingfor:publicfunction__call($method,$variables){returnparent::__call($method,$variables);}} 关于

php - 另一个继承问题

来自Google的快速搜索和关于多重继承的维基百科文章,其中引用:Multipleinheritancereferstoafeatureofsomeobject-orientedprogramminglanguagesinwhichaclasscaninheritbehaviorsandfeaturesfrommorethanonesuperclass.Thiscontrastswithsingleinheritance,whereaclassmayinheritfromatmostonesuperclass.我知道PHP不允许多重继承。然而,我找不到明确的答案是它是否允许多个类扩展一

php - PHP 中的动态多态性

是否像模板类一样支持PHP中的动态多态性,或者在PHP中使用多态性的唯一方法是抽象函数和重载/覆盖? 最佳答案 这应该启发你:http://net.tutsplus.com/tutorials/php/understanding-and-applying-polymorphism-in-php/ 关于php-PHP中的动态多态性,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/42

php - FPDF拒绝通过继承合作

下面有两个代码示例。一个有效,但第二个(使用extend创建新的类包装器)无效。请注意,我已经大大简化了以下示例。方法#1page.php:AddPage();$pdf->SetFont('Arial','',11);$pdf->Output();?>这按预期工作。它会创建一个空白页面。方法#2但是,通过继承使用FPDF,我得到一个错误(见下面的代码块)。myPDF.php:AddPage();$this->SetFont('Arial','',11);$this->Output();}}?>page.php:createMyPage();?>第二种方法会产生以下PHP警告和FPDF错

php - DocBlock类类型继承

虽然这个问题是关于DocBlocks的一般来说,我的用例是关于PHP的。考虑以下PHP代码:say_hi()->say_b|这只是一个带有一些链接的普通类。扩展类失去了类型提示,因为父类的文档block正在使用不具有子类的方法/属性的特定类名。假设我们确实需要类型提示功能,(如果不需要,请留下这个问题-我不想在这里使用无用的参数),我应该如何解决这个问题?我想到了以下可能性:更改PHPDoc标准以允许使用特殊关键字添加一个多余的say_hi()方法,该方法调用父级只是为了重新声明docblock根本不指定返回类型,让IDE决定return$this;的含义(这是否有效?)

php - 数组的静态继承

我很难解释我正在尝试做什么,所以我只提供一个例子classA{static$data=['a'];staticfunctiongetData(){returnstatic::$data;}}classBextendsA{static$data=['b'];}classCextendsB{static$data=['c'];}classDextendsB{static$data=['d'];}$a=newA;$b=newB;$c=newC;$d=newD;$a::getData();//Output:Array('a'),Expected:Array('a');$b::getData()